1
Chuẩn hóa tính đồng thời trong C++ hiện đại
AI013Lesson 7
00:00

Trước C++11, chuẩn C++ là "không phụ thuộc vào luồng," dựa vào các API đặc thù nền tảng như POSIX Threads (Pthreads) hoặc Win32. C++ hiện đại đã cách mạng hóa ngôn ngữ bằng cách giới thiệu một mô hình bộ nhớ chính thức và một API đồng thời chuẩn hóa. Mô hình bộ nhớ cùng với một API đồng thời chuẩn hóa.

1. Sự thay đổi lớn lao của C++11

C++11 đã biến đổi ngôn ngữ từ một máy trừu tượng đơn luồng thành một hệ thống hiểu rõ việc thực thi đồng thời thông qua <thread> thư viện và std::thread. Điều này đã chuyển việc đa luồng từ một vấn đề thư viện bên ngoài sang hệ thống kiểu dữ liệu cốt lõi.

TRƯỚC C++11 (Phân mảnh)PthreadsAPI Win32C++ HIỆN ĐẠI (Chuẩn hóa)<thread> <mutex><atomic> <future>

2. Bảo đảm ngoại lệ

Thuộc tính noexcept là yếu tố then chốt trong ngữ cảnh song song. Nó cung cấp một thỏa thuận rằng một hàm (như điểm vào của một luồng) sẽ không lan truyền ngoại lệ. Nếu một ngoại lệ thoát ra khỏi một noexcept biên giới, std::terminate() sẽ được gọi ngay lập tức, ngăn chặn sự hỏng hóc trạng thái không xác định.

3. Kiểu dữ liệu nhất quán

Việc chuẩn hóa bao gồm các kiểu như long long int (được lấy từ C99) và std::filesystem, đảm bảo độ rộng dữ liệu và tương tác hệ thống vẫn nhất quán trên mọi phần cứng khi được chia sẻ giữa các luồng.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>